package com.ys.erp.entity.data.bean;

import com.baomidou.mybatisplus.annotation.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * @author lwj
 * @date 2025/5/16
 */
    
@Data
@TableName(value = "t_user_cat_ext")
public class UserCatExt {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.INPUT)
    private Long id;

    /**
     * 用户id
     */
    @TableField(value = "user_id")
    private Long userId;

    /**
     * 猫咪编号
     */
    @TableField(value = "cat_code")
    private String catCode;

    /**
     * 门店code
     */
    @TableField(value = "shop_code")
    private String shopCode;

    /**
     * 0用户原因，1猫咪原因
     */
    @TableField(value = "pre_reason")
    private Integer preReason;

    /**
     * 领走日期
     */
    @TableField(value = "pre_date")
    private LocalDateTime preDate;

    /**
     * 预测领走日期
     */
    @TableField(value = "predict_date")
    private LocalDate predictDate;

    /**
     * 预定缴费金额
     */
    @TableField(value = "predict_money")
    private Long predictMoney;

    /**
     * 退定时间
     */
    @TableField(value = "return_pre_time")
    private LocalDateTime returnPreTime;

    /**
     * 送回日期
     */
    @TableField(value = "return_time")
    private LocalDateTime returnTime;

    /**
     * 死亡日期
     */
    @TableField(value = "die_date")
    private LocalDate dieDate;

    /**
     * 退猫日期
     */
    @TableField(value = "return_cat_date")
    private LocalDate returnCatDate;

    /**
     * 退猫清空金额
     */
    @TableField(value = "return_cat_clear_money")
    private Long returnCatClearMoney;

    /**
     * 退猫操作人
     */
    @TableField(value = "return_cat_emp_name")
    private String returnCatEmpName;

    /**
     * 转直购日期
     */
    @TableField(value = "cast_buy_time")
    private LocalDateTime castBuyTime;

    /**
     * 最近领走时间
     */
    @TableField(value = "last_take_date")
    private LocalDate lastTakeDate;

    /**
     * 微分呗期数
     */
    @TableField(value = "cat_period")
    private Integer catPeriod;

    /**
     * 每期金额，单位分
     */
    @TableField(value = "period_money")
    private Long periodMoney;

    /**
     * 是否员工领走
     */
    @TableField(value = "is_emp_take")
    private Integer isEmpTake;

    /**
     * 员工领走id
     */
    @TableField(value = "take_emp_id")
    private Long takeEmpId;

    /**
     * 直接购买备注
     */
    @TableField(value = "buy_remark")
    private String buyRemark;

    /**
     * 是否签订合同，0否1是
     */
    @TableField(value = "is_sign_contract")
    private Integer isSignContract;

    /**
     * 合同类型，0线上1线下
     */
    @TableField(value = "sign_contract_type")
    private Integer signContractType;

    /**
     * 签单导购员工id
     */
    @TableField(value = "guide_emp_id")
    private Long guideEmpId;

    /**
     * 签合同人员
     */
    @TableField(value = "sign_emp_id")
    private Long signEmpId;

    /**
     * 检查人员
     */
    @TableField(value = "check_emp_id")
    private Long checkEmpId;

    /**
     * 解约原因
     */
    @TableField(value = "unbind_remark")
    private String unbindRemark;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 卖出去时笼位
     */
    @TableField(value = "cage_no")
    private String cageNo;

    /**
     * 笼位区域
     */
    @TableField(value = "cage_area")
    private String cageArea;

    /**
     * 层数
     */
    @TableField(value = "cage_storey")
    private String cageStorey;

    /**
     * 单元数
     */
    @TableField(value = "cat_unit")
    private String catUnit;

    /**
     * 0:正常展示笼1：猫瘟恢复笼2：隔离治疗笼
     */
    @TableField(value = "cage_type")
    private Integer cageType;

    /**
     * 合同签约方式类型0君子签
     */
    @TableField(value = "contract_sign_way_type")
    private Integer contractSignWayType;

    /**
     * 是否虚拟钱包
     */
    @TableField(value = "is_virtual")
    private Integer isVirtual;

    /**
     * 签约门店
     */
    @TableField(value = "sign_shop")
    private String signShop;

    /**
     * 加盟商返款比列
     */
    @TableField(value = "refund_ratio")
    private String refundRatio;

    @TableField(value = "version")
    @Version
    private Integer version;

    @TableField(value = "create_time")
    private LocalDateTime createTime;

    @TableField(value = "update_time", update = "now()")
    private LocalDateTime updateTime;
}